Remote control with LED capabilities

ABSTRACT

A universal remote control comprising a keyboard having a plurality of pushbuttons including a macro pushbutton and a library of codes and data for use in transmitting operating commands to a plurality of different home appliances of different manufacturers. Instructions within the remote control are used to match the universal remote control to a plurality of different home appliances of different manufacturers such that selected codes and data from the library are used to transmit operating commands to the matched home appliances in response to activation of selected pushbuttons of the keyboard. The instructions are also used to assign to the macro pushbutton a subset of the selected codes and data from the library whereafter activation of the macro pushbutton causes the universal remote control to use the subset of selected codes and data from the library to transmit operating commands to one or more of the matched home appliances.

CROSS-REFERENCE TO RELATED APPLICATIONS

This patent application claims the priority date of U.S. applicationSer. No. 07/109,336 filed on Oct. 14, 1987, now abandoned, as adivisional application of U.S. application Ser. No. 09/871,872, filedJun. 1, 2001, now U.S. Pat. No. 6,496,135, which is continuation of U.S.application Ser. No. 09/791,354 filed on Feb. 23, 2001, now U.S. Pat.No. 6,587,067, which is a continuation of U.S. application Ser. No.09/408,729 filed on Sep. 29, 1999, now U.S. Pat. No. 6,195,033, which isa continuation-in-part of U.S. application Ser. No. 07/990,854 filed onDec. 11, 1992, now U.S. Pat. No. 6,014,092, which is acontinuation-in-part of U.S. application Ser. No. 07/913,523 filed onJul. 14, 1992, now abandoned, which is a continuation-in-part of U.S.application Ser. No. 07/586,957 filed on Sep. 24, 1990, now abandoned,which is a continuation-in-part of U.S. application Ser. No. 07/127,999filed on Dec. 2, 1987, now U.S. Pat. No. 4,959,810, which is acontinuation-in-part of U.S. application Ser. No. 109,336.

This patent application contains the specification of U.S. applicationSer. No. 07/127,999 filed on Dec. 2, 1987, now U.S. Pat. No. 4,959,810.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a universal remote control device ofthe type which is hand held and which can be coupled via coded infraredsignals with a remote control receiver built into a television or otherremotely controlled electrical apparatus to turn on the apparatus, suchas the television, at a distance, to adjust the volume, tone andbrightness, to change channels, and to turn the television off.

Additionally, the present invention relates to a method for acquiringthe infrared codes for a controlled apparatus, such as a television,generating code data related to these infrared codes for storage in aremote control device and methods for using the remote control devicefor finding, in a library or table of code data for generating infararedcodes for operating different electrical apparatus manufactured bydifferent manufacturers stored in a RAM of the remote control device,the code data for generating infrared coded signals for operating aparticular apparatus, such as a television, and then for using thestored code data for generating the coded infrared signals for operatingthe controlled apparatus.

2. Description of the Prior Art

Heretofore it has been proposed to provide a reconfigurable remotecontrol device and programmable functions for such a remote controldevice which will enable one to learn, store and retransmit infraredcodes that are emitted from the controller for a remotely controlledapparatus, such as a television.

For example, in the Welles II U.S. Pat. No. 4,623,887 and the EhlersU.S. Pat. No. 4,626,848, there is disclosed a reconfigurable remotecontrol device which has the ability to learn, store and repeat remotecontrol codes from any other infrared transmitter. Such a reconfigurableremote control transmitter device includes an infrared receiver, amicroprocessor, a non-volatile random access memory, a scratch padrandom access memory, and an infrared transmitter.

According to the teachings of the Ehlers patent, the infrared signalsreceived by the remote control device are in bursts of pulses and thedevice counts the number of pulses in each burst as well as the timeduration of each pause in a transmission between bursts.

As will be described in greater detail hereinafter, the universal remotecontrol device of the present invention utilizes a single non-volatileRAM does not provide a separate scratch pad RAM or, more importantly, aROM.

In learning the infrared code and transforming same to code data whichis then stored in a RAM of the control device and later used to generateinfrared codes, a novel method is utilized wherein no counting of pulsestakes place, and only the time duration of the pulses in a burst ofpulses from the leading edge of the first pulse in a burst of pulses tothe trailing edge of the last pulse in the burst as well as the timeduration of the pause between bursts are sensed and used to learn andlater to generate the infrared codes.

Additionally, unique methods for use of the remote control device areprovided so that a number of infrared operation code sequences can begenerated by the remote control device for operating various types ofelectronic apparatus.

SUMMARY OF THE INVENTION

According to the invention there is provided a universal remote controlsystem having input means for inputting commands, signal output meansfor supplying infrared signals to a controlled device, a centralprocessing unit (CPU) coupled to the input means and to the signaloutput means, a single non-volatile, read-write RAM (such as abattery-backed RAM) coupled to the central processing unit and datacoupling means including terminal means coupled to the CPU for enablingnew code data to be supplied from outside the system to, or retrievedfrom the RAM through the terminal means and the CPU.

Further according to the invention, there is provided a method ofloading a RAM in a ROM-less microprocessor system comprising a centralprocessing unit, a single non-volatile, read-write RAM, input means,output means, and means for coupling said central processing unit, saidRAM, said input means, and said output means together, said methodincluding the steps of:

-   -   (a) disabling the central processing unit;    -   (b) connecting a separate microprocessor system to said RAM;    -   (c) transferring instructions and/or data to said RAM;    -   (d) re-enabling the central processing unit to enable the        central processing unit to execute the instructions so        transferred.

Still further according to the present invention, there is provided aprocess of learning, storing and reproducing the remote control codes ofany of a diverse plurality of remote control transmitters, comprisingthe steps of:

-   -   (a) receiving a transmission of a train of pulses from a remote        control transmitter;    -   (b) recording the point-in-time of an edge of each pulse in a        train of said pulses;    -   (c) transforming the recorded point-in-time data into a list of        instructions for generating a replica of said train of pulses;    -   (d) timing the duration of a train of said pulses;    -   (e) timing the period between trains of pulses;    -   (f) associating a function key of a universal remote control        device with said time duration of said train of pulses and said        list of instructions for generating a replica of said train of        pulses;    -   (g) determining whether or not repetitions of the transmission        of train of pulses is present;    -   (h) ignoring repetitions of the train of pulses;    -   (i) noting that repetitions are present; and    -   (j) storing for use in a universal remote control device, the        information acquired in steps (c), (d), (e), (f) and (i).

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a front perspective view of the universal remote controldevice constructed according to the teachings of the present invention.

FIG. 2 is an exploded perspective view of the control device shown inFIG. 1.

FIG. 3 is an enlarged fragmentary sectional view through two of the pushbuttons of the control device shown in FIGS. 1 and 2.

FIG. 4 is a fragmentary comer view of a push button containing panel anda base panel.

FIG. 5 is a fragmentary comer view similar to FIG. 4 as the panels arebrought together and shows one of the push buttons cut away from thepush button containing panel.

FIG. 6 is a fragmentary sectional view of the assembly 15 formed bybringing the push button containing panel into engagement with the basepanel.

FIG. 7 is a plan view of the circuit board assembly mounted inside thecontrol device viewing the control device from the back side thereofwith a back cover panel removed.

FIG. 8 is a block diagram of the operating circuitry in the controldevice.

FIGS. 9A & 9B are a detailed schematic circuit diagram of the operatingcircuitry shown in FIG. 8.

FIG. 10 is a perspective view showing the connection of a programmingconnector over the central processing unit of the operating circuitry inthe control device, the programming connector being connected to amicroprocessor, being operable to disable the central processing unit,and being used to program the random access memory (RAM) of theoperating circuitry.

FIGS. 11 a to 11 i are graphical representations of several modulationschemes which are used in infrared remote control transmitters.

FIG. 12A is a flow chart of a first part of a method for capturing an IRcode and FIG. 12B is a graph of the envelope of the code.

FIG. 13A is a flow chart of a second part of a method for 5 capturing anIR code; FIG. 13B is a waveform of the IR bit stream and filtered bitstream; and FIG. 13C is a graph of the waveform of a filtered repetitionof a filtered bit stream.

FIG. 14 is a flow chart of the method used for generating an infraredcode.

FIG. 15 is a front plan view of the control device shown in FIG. 1 andshows the various pushbuttons of the device.

FIG. 16 is a flow chart of the search and set procedure followed inusing the control device of the present invention.

FIG. 17 is a flow chart of a direct-entry/quick-set procedure followedin using the remote control device.

FIG. 18A is a flow chart of the procedure followed in setting a “DO”command and FIG. 18B is a flow chart of the method for executing a “DO”command.

FIG. 19A is a flow chart of the method used to identify what type ofunit the remote control device is set for and FIG. 19B is a table of theidentifying blink code.

FIG. 20 is a fragmentary perspective view with portions broken away of aconnector with conversion circuitry therein and a special battery casecover for the control device by which new data can be inputed into theRAM of the operating circuitry of the control device.

FIG. 21 is a schematic circuit diagram of part of the conversioncircuitry in the connector shown in FIG. 20.

FIG. 22 is a schematic circuit diagram of another part of the conversioncircuitry in the connector shown in FIG. 20.

DETAILED DESCRIPTION

Referring now to FIG. 1 in greater detail, there is illustrated thereina universal remote control device 10 constructed according to theteachings of the present invention.

As shown, the device 10 includes a housing 11 including an upper housingmember 12 having a base panel 14, and a lower housing member 16. Anoverlay face panel 18 is positioned over the base panel 14.

The two panels 14 and 18 have openings 22 and 24 (FIG. 2) therethroughfor receiving elastomeric pushbuttons 25, all of which extend from andare fixed to or integral with an elastomeric body panel 26 as shown inFIG. 2.

The pushbuttons 25 are arranged in rows and columns and are identifiedas follows on the overlay face panel 18:

VCR 1 Cable TV Power VCR 2 CD DO 1 DO 2 Rec TV.VCR Stop Pause RewReverse Play Fast Fwd Mute 1 2 3 Vol Up 4 5 6 Vol Dn 7 8 9 0 Enter CH UpRecall CH Dn DO A C E G B D F HThis arrangement is shown in FIG. 15 and the manner in which thesepushbuttons 25 are utilized in operating the control device 10 will bedescribed in greater detail in connection with the description of FIGS.15-19B.

At a top or forward end 28 of the device 10, there is provided anopening 30 for three light emitting diodes, LED 1, LED 2 and LED 3. Theopening 30 is covered by an infrared-transport lens 31. Also, providedon a top surface 32 of the upper housing member 12 of the control device10 is a light emitting diode, LED 4, by which information, in the formof red and green blink codes, is communicated to the user of the device10.

FIG. 2 is an exploded view of the components of the device 10. As shown,the device 10 includes the overlay face panel 18 withpushbutton-receiving, generally rectangular openings 22, the upperhousing member 12 with base panel 14 having a plurality of generallyrectangular, pushbutton receiving openings 24, the elastomeric bodypanel 26 having pushbuttons 25 extending from an upper surface 34thereof, a printed circuit board 36 having conductive switches 38 on anupper surface 40 thereof and operating circuitry 42 (FIG. 7) mounted onthe underside 43 thereof, the lower housing member 16, a cover 44 for abattery compartment 45 (FIG. 7) for receiving batteries 46 (FIG. 10) forthe circuitry 42 of the control device 10, and the infrared-transportlens 31.

It will be noted that the base panel 14 of the upper housing member 12has pushbutton openings 24 completely across each one of fourteen (14)rows across and four (4) columns down. However, not all of theseopenings or holes 24 have pushbuttons 25 extending therethrough, asnoted by the lesser number of pushbutton-receiving openings 22, in theoverlay face panel 18. Likewise, the body panel 26 initially haspushbuttons 25 arranged completely across the upper surface 34 thereofin fourteen (14) rows across and fourteen (14) columns down.

The printed circuit board 36 has conductive switches 38 aligned witheach one of the pushbuttons 25 so that more switches 38 are providedthan may be necessary for this particular control device 10.

The availability of additional pushbutton openings 24 in the base panel14 will enable the control device 10 to be modified as necessary by theaddition of further pushbuttons 25 to perform numerous other functionsas called for.

This mechanical construction of the upper and lower housing members 12and 16 and the panels 14 and 18 and circuit board 36 enable the controldevice 10 to be modified to include additional circuits in the operatingcircuitry 42 and pushbutton switches 25 for performing additionalfunctions, if desired. In this respect, overlay face panel 18 is easilyreplaceable to modify the device 10 to include more or less pushbuttons25 and associated switches 38.

The simplicity of the construction of the pushbuttons 25, the base panel14 and the overlay panel 18 is shown in FIGS. 3-6. As shown in FIG. 3,the body panel 26 has a plurality of raised pushbuttons 25 formedthereon. Each raised rectangular button 25 has a recessed area or hollow48 on the underside 49 of each button 25 in which is mounted aconductive plunger or puck 50 adapted to engage one of the conductiveswitches 38 on the circuit board 36. With the pushbuttons 25 and thepanel 26 being formed from a sheet of elastomeric material it is an easymatter to remove the buttons 25 that are not necessary with a scissorsor other cutting element, as shown in FIG. 4.

Then, the pushbutton body panel 26 is moved into engagement with thebase panel 14, as shown in FIG. 5, to form the assembly shown in FIG. 6.

After the pushbutton body panel 26 and the base panel portion 14 havebeen assembled as shown in FIG. 6, the overlay face panel 18 is mountedon top of the base panel 14 and the circuit board 36 is mounted withinthe housing member 12.

Referring now to FIG. 7, there is illustrated therein the operatingcircuitry 42 of the control device 10 which includes batteries 46 (FIG.10) mounted in the compartment 45 for providing power for the circuitry42 and a lithium battery 52, which backs up a statuc RAM 54. A centralprocessing unit (CPU) 56, is coupled through a latch 58 to the RAM 54.Three LEDs, LED 1, LED 2, and LED 3 are coupled to the circuitry 42 forcommunication with the apparatus to be controlled. All elements of thecircuitry 42 are mounted on the circuit board 36 mounted in the upperhousing member 12. A further LED, LED 4 is coupled to CPU 56 forcommunication with the user of the device 10 as will be described ingreater detail below.

A block schematic circuit diagram of the operating circuitry 42 is shownin FIG. 8 and includes CPU 56, the infrared light emitting diodes, LED1, LED 2, and LED 3 coupled to the CPU 56, serial input/output ports 60of CPU 56, the RAM 54 coupled to CPU 56 and backed up by lithium battery52 and a 4×14 keyboard 61 coupled to CPU 56. The four AAA batteries 46are also shown.

FIGS. 9A and 9B are a detailed schematic circuit diagram of theoperating circuitry 42. The operating circuit 42 includes the centralprocessing unit 56, the latch 58, the random access memory 54 and LED 1,LED 2, LED 3 and LED 4.

The operating circuitry also includes several subcircuits. One of thosesubcircuits 62 (FIG. 9B) includes the keyboard 61 having pushbuttons 25,each of which is connected to a port 63 of the CPU 56 shown in FIG. 9Band can be referred to as the keyboard circuit 62. The X's in FIG. 9Bindicate the pushbuttons 25 and when one of those pushbuttons X ispressed, current flows through a resistor in a column line, e.g., whenbutton 25′ is pressed current flows through resistor 64 in column line138 going to the button or key 25′. That raises the voltage on a supplyline VCC to the CPU 56 of the microprocessor.

Accordingly, whenever a button 25 is pressed, it will increase thevoltage on line VCC which initiates a switching process in a wake upcircuit 70 for “waking up” or energizing the CPU 56 in the mannerdescribed below.

In addition to the keyboard circuit 62 and the wakeup circuit 70, thesubcircuits include a reset circuit 74, and a write protect circuit 78.

When the voltage on line VCC goes up, a signal is passed throughcapacitor 102, to the base of a transistor 104 in the wake up circuit70. This turns on the transistor 104 which in turn turns on transistor106 This turning on of the transistors 104 and 106 will bring voltage online VCC to the full DC voltage of about 5½ volts. When the voltage online VCC reaches 5½ volts, the CPU 56 begins to operate.

When operating, the CPU 56 establishes a signal on line ALE 108 which ispassed through a resistor 110 and filtered by capacitor 102. Once theALE signal is established, it causes a voltage to be generated at thebase of transistor 104, maintaining transistor 104 turned on, which inturn maintains transistor 106 turned on, thus enabling the CPU 56 tocontinue to run. The CPU 56 can turn itself off by executing a HALTinstruction which causes the ALE signal to cease, thus turning offtransistors 104 and 106 and removing power via line VCC to the CPU 56.

It is to be noted that the wake up circuit 70 can be activated bydepression of a key or button 25 or by an input signal at serial port 3coupled to an input port 112 of the CPU 56.

The circuit elements described above form the wakeup circuit 70 foractivating the operating circuitry 42 of the device 10. This circuituses substrate static-protection diodes 114 in a CMOS chip coupled tothe keyboard 61. With this arrangement, source current is supplied totransmitter 104 via line VCC when a key or pushbutton 25 is depressed.

The RAM 54 is connected to the lithium battery 52 and, when the device10 is not being used, draws about 20 nanoamps from the battery 52, whichgives the device 10 a shelf life between 5 and 10 years. A backupcapacitor 116 is coupled to the RAM 54 and has (at 20 nanoamps) adischarge time of about 10 minutes, providing ample time to change (ifnecessary) the battery 52 without losing the instructions and datastored in the RAM 54. Capacitor 116 is kept charged by battery 46through diode 117 when the device 10 is operating and, at other times,by battery 52 through diode 118.

After the CPU 56 has been powered up, or awakened, the CPU 56 makes ascan of row lines 121-128 to the keyboard 61 by sequentially forcingeach line 121-128 low and then polling the other lines to find out whichbutton 25, such as button 25′, has been pressed. As a result ofpushbutton 25′ being pressed, a low impressed upon row line 121 willcause a low on column line 128 and that will result in the row line 128being low.

The CPU 56 first sets row line 121 low and then begins scanning,starting with the row line 122, for another row line having a lowvoltage thereon and by finding the row line with the low voltage, in theabove example, row line 128, the CPU 56 knows that button 25′ at theintersection of row line 128 and column line 138 has been depressed.

If the CPU 56 had not found a low on another row line, such as row line128, after having set line row 121 low, line 121 is returned to itsprevious value and row line 122 is then set low, and the scan continueduntil a low row line is found to identify which button 25 has beendepressed.

When the CPU 56 determines which pushbutton 25 has been depressed theCPU 56 will then know what function is to be carried out.

It is to be noted that the keyboard circuit 62 is uniquely designed toinclude only eight (8) row lines 121-128 and eight (8) column lines131-138 each having a resistor 64 and a current directing diode 114therein and each being arranged across the row lines 131-138 so that 56switch positions are provided with only eight (8) lines.

All memory cycles exercised must involve the latch 58 because the CPU 56has its data bus multiplexed with the lower 8 bits of the address bus onlines 141-148.

Coming out of the CPU 56 to the latch 52, is a group of nine (9) lines108 and 141-148. One of the lines, line 108, carries the ALE signal. Theeight (8) lines 141-148 between the latch 58 and the CPU 56 are themultiplexed data and address bus lines. These lines comprise the lower 8bits of the address bus. A group of multiplex lines are identified withreference numeral 150. Five more lines 151-155 comprise the upper fivebits of the address bus, making a total of 13 bits of address.

An inverting OR gate 156 having an output line 158 and two input lines160 and 162 together with ground line 164 are coupled between the CPU 56and the RAM 54. The line 158 defines an output enable for the RAM 54.

Accordingly, when the CPU 56 wants to do a read, it actuates either ofthe two input lines 160 or 162 going into the OR gate 156. Line 160 is aPSEN line for telling the RAM 54 that it is to be enabled to receivedata and line 162 in a Read Output line to tell the RAM 54 that the CPUis going to read the information stored in the RAM 54. With OR gate 156the two lines and functions are combined on one line 158. In otherwords, the CPU 56 tells the RAM 54, through the OR gate 156, that itwants to read information stored in the RAM 54.

The circuitry 42 also includes the write protect circuit 78 which hasthe double duty of being a low battery indicating circuit. The circuit78 includes a resistor 170, a transistor 171, two resistors 172, 173 anda Zener diode 174 connected as shown.

A write enable line 176 is connected between the transistor 171 and theCPU 56.

When the CPU 56 desires to write information into the RAM 54, it placesthe address on the address bus lines 141-148 and 151-155, strokes thelower 8 bits of the address bus on lines 141-148 into the latch 58 usingALE line 108, places the information on the data bus lines 141-148, andthen brings the write enable line 176 low.

When the write enable line 176 goes low, unless the transistor 171 isturned on by virtue of the battery voltage being more than 4.3 volts, aline 178 going into the RAM 54 at the collector 180 of the transistor171 (which is the “write enable” for the RAM 54), is prevented fromgoing low, maintaining the RAM “Write Protected”. This condition also iscreated when the battery 48 is low. The “write enable” line 176 alsofunctions as a low battery detector because, during execution of theprogram, a check is made to see whether writing to the RAM 54 isenabled. If it is not, this shows that the batteries are weak and asignal is sent to the user by flashing the red LED, of LED 4, 5 times.

Note that LED 4 includes a red LED and a green LED incorporated into onepackage so that when both LEDs are turned on, a yellow light is emitted,making LED 4 a tricolor LED. Such tricolor LED 4 enables the device 10easily to communicate to the user by way of the color, number andsequence of light blinks.

A clock circuit 182 including a crystal resonator is coupled to the CPU56.

Three serial ports 1-3 are coupled to the CPU 56 and include port 1which is a transmitting port, port 2 which is ground and port 3 which isa receiving port. Serial port 1 is connected to row line 121 so thatdata can be serially transmitted in the form of highs and lows by CPU 56from the RAM 54 over row line 121 to serial port 1. Incoming data isreceived serially at serial port 3 and conveyed to input port 112, whenit is desired to update the code data and/or instructions in the RAM 54.

The three infrared-emitting LEDs, LED 1, LED 2, and LED 3 are connectedin the circuitry 42 as shown.

The reset circuit 74 includes two resistors and a capacitor connected asshown and coupled between line VCC and a reset line 184.

As will be described in greater detail in connection with thedescription of FIGS. 11-14, the manufacturer of the device 10, usingknown methods or the method described herein with reference to FIGS.12A-13C, will decipher the infrared codes for operating various piecesof equipment, such as a TV, a VCR, a CD, a Cable Converter or otherequipment which is controlled by a remote infrared transmitting device.

After the infrared code is deciphered, the code data theefor andinstructions for generating such code (see the flow chart in FIG. 14)are stored in a programming computer 200 (FIG. 10) and the device 10 isprogrammed as explained below.

It is to be noted that the circuitry 42 has no ROM and all instructioncodes and code data are loaded directly into the RAM 54. This allows forinfinite upgradability in the field via the serial ports 1, 2, 3.

FIG. 10 is a perspective view of a programming computer 200 coupled by acable 202 to a special connector 204 which is adapted to be receivedover the CPU 56 in the operating circuitry 42 for disabling the CPU 56and for enabling the RAM 54 to be programmed by the programming computer200. Essentially this is done by tri-stating the CPU 56 and placing theRAM 54 into the address space of the computer 200 which writes initialinstruction code including code for the serial port driver, andsubsequently serially, other instruction code and code data into the RAM54. For this purpose the programming computer 200 has instruction codessuch as serial port driver instructions and data relative to theinfrared codes for operating a multiple number of electronic apparatus,such as televisions, VCR's, etc stored therein. Signals from theprogramming computer 200, via the connector 204 causes the inputs andoutputs 60 of the CPU to be disabled so that instruction codes and datacan be input into the RAM 54 quickly and efficiently from theprogramming computer after the operating circuitry 42 is mounted in thecontrol device 10.

Later, after the device 10 has been in use for some time and the RAM 54needs to be updated with instruction codes and data relative to newequipment on the market, the control device 10 can be simply and easilyupdated at a service outlet having an ordinary personal computer with aserial port using a novel nine pin to three pin, 9 volt to 5 volt,signal coupling and converting assembly 206 (FIG. 20). The updating canbe done by adding to the data in RAM 54 or by rewriting (writing over)the data in RAM 54. The assembly 206 is described in greater detailhereinafter in connection with the description of FIGS. 20-22.

The infrared codes to be learned include a wide range of different codesfor operating different electrical apparatus manufactured by the same ordifferent manufacturers. In FIG. 11, which is identical to FIG. 1 inU.S. Pat. No. 4,623,887, there are illustrated several modulationschemes for infrared codes. FIGS. 11 a-11 g illustrate different typesof gated carrier frequencies. Typical carrier frequencies for infraredremote transmitters are 20 Khz to 45 Khz, with the majority being at 38Khz and 40 Khz. The gating schemes illustrated include both fixed andvariable bit periods, non-return to zero (NRZ), variable burst widths,single/double burst modulation schemes, and a final catch-all categorycalled random because there is no readily distinguishable pattern ofones and zeros.

In addition to these schemes, there is also a transmitter which puts outa different continuous frequency (CW) for each key as represented inFIG. 11 h.

Finally, several new types of transmitters do not use a carrierfrequency at all but instead send a stream of pulses where the dat isencoded in the spaces between the infrared pulses as shown in FIG. 11 i.

Data modulation schemes for most transmitters have a higher level ofdata organization which may be called a keyboard encoding scheme whichcauses different data to be sent depending upon the transmitter and thekey pressed. This will be described in greater detail hereinafter inconnection with FIGS. 15-19.

The code data for the infrared codes may be obtained from vendorinformation sheets and specifications, can be determined using themethods disclosed in U.S. Pat. Nos. 4,623,887 and 4,626,848, or by themethod disclosed herein.

In the method for learning or acquiring code data for infrared codesdisclosed herein, no counting of pulses is carried out. Instead themethod involves the following steps:

-   -   (a) receiving a transmission of a train of pulses from a remote        control transmitter;    -   (b) recording the point-in-time of an edge of each pulse in a        train of the pulses;    -   (c) transforming the recorded point-in-time data into a list of        instructions for generating a replica of the train of pulses;    -   (d) timing the duration of a train of the pulses;    -   (e) timing the period between trains of pulses;    -   (f) associating a function key of the universal remote control        device 10 with the time duration of the train of pulses and the        list of instructions for generating a replica of the train of        pulses;    -   (g) determining whether or not repetitions of the transmission        of train of pulses is present;    -   (h) ignoring repetitions of the train of pulses;    -   (i) noting that repetitions are present; and    -   (j) storing for use in a universal remote control device, the        information acquired in steps (c), (d), (e), (f) and (i).

Typically, each pulse has a fixed duty cycle and in carrying out theabove described method it can be assumed that each pulse has a fixedduty cycle.

The manual and computer steps followed in practicing this method are setforth in FIGS. 12A and 13A.

FIG. 12A is a flow chart of the first part of this method for capturingan IR code and FIG. 12B is a graph of a pulse train comprising a portionof the code.

There is shown in FIG. 12B, adjacent the transforming step in FIG. 12A,a graph of the waveform of the captured, and later recreated, infraredcodes, showing when the infrared signal is on and when it is off. Whenthe CPU 56 executes the instructions set forth below the waveform inFIG. 12B, infrared-emitting LEDs, LED 1, LED 2, and LED 3 are turned onwhen the instruction IR-ON is executed and turned off when theinstruction IR-OFF is executed. No operation is performed when theinstruction NOP is called for. In this way the infrared codes aretransformed into a bit stream of 0's and 1's.

FIG. 13A is a flow chart of a second part of the method for capturing anIR code.

FIG. 13B shows the IR infrared bitstream and an envelope of the filteredbitstream.

FIG. 13C shows the filtered waveform that is analyzed for repetition.The repetition scheme and a pointer to indicate, upon regeneration ofthe infrared code, which key will generate that code are stored in amemory for later inputting into the RAM 54.

FIG. 14 is a flow chart of a sequence of eleven (11) steps that a userinitiates to generate a specific IR code for performing a specificfunction, namely, for generating a captured IR code stored in the remotecontrol device 10. The code data is stored in the RAM 54 of the remotecontrol device 10 and the sequence of steps the circuitry 42 goesthrough to take the code data in the RAM 54 and generate the infraredcode therefrom is set forth in this Figure.

FIG. 15 is a plan view of the keyboard 61 and shows the different keysor pushbuttons 25 of the control device 10 extending through the basepanel 14 of upper housing member 12 and the face panel 18 where thelabel or identification for each pushbutton or key 25 is shown. Thelight emitting diode, LED 4, is also indicated.

FIG. 16 is a flowchart of the steps initiated by a user of the device 10in a step and set procedure for searching for code data in the device 10for the infrared code needed to operate the user's specific apparatusand to set the device 10 for that code data.

FIG. 17 is a flow chart of the steps initiated by a user in carrying outa direct-entry/quick-set procedure for matching the user's equipment orapparatus to the device 10.

The steps of this procedure include:

-   -   STEP 1. Look up make and model number of the controlled        apparatus in a table provided to the user in an instruction        booklet    -   STEP 2. Model number is found and matched with a series of 8        “R”s and “G”s.    -   STEP 3. Here the operator presses the desired mode button or        key.    -   STEP 4. Press DO, Enter, Recall. This tells the device 10 to do        a Quick-Match.    -   STEP 5. Next enter the sequence of eight red and green blinks        found in TABLE I (set forth below) provided in the instruction        booklet. This is done by pressing Channel Down for “R” and        Channel Up for “G”.    -   STEP 6. Here a determination is made if a key other than Channel        Up or Channel Down, was pressed.    -   STEP 7. The device 10 tricolor LED 4 will flash red or green        depending on what button is pushed.    -   STEP 8. When all eight codes are entered, the program goes on to        STEP 9.    -   STEP 9. Here a check is made to see if the blink code is in the        table in the RAM 54 of the remote control device 10.    -   STEP 10. If the device 10 has successfully Quick-Matched to the        controlled apparatus, the LED 4 will flash green twice.    -   STEP 11. If it did not match, it will flash yellow indicating        that codes for that controlled apparatus are not loaded into the        RAM 54.

TABLE I DEVICE BLINK CODES AND SPECIAL FEATURE BUTTONS Blink CodeA  B  C  D  E  F  G  H TELEVISION SETS RRRR RRRR Display MTS Pict + Pict− Sleep TV/Video Ant Tone 25 = Col Up 26 = Col Dn 27 = Brt Up 28 = BrtDn 29 = Hue Up 30 = Hue 31 = Mtx 32 = Reset Dn RRRG RRRG Screen Sp Phne/AutoOn/ AutoOff/ Ant Stereo Dn Prnt Ctl Data Ent Data Clr RRRG RGRGAdd Clear RRRG GRRR A Ch Hi Fi RRRG GRGR Ant/Aux Time/Ch Program TV/VCRRRRG GGGR Ant/Aux Time/Ch RRRG GGGG Pwr On Pwr Off Display Ant GRRG RRRGAux Last Ch Timer GRRG RRGG Fine Up Fine Dn L Ctl R Ctl OBC Func ReviewBiLing 25 = Stereo 26 = TimeFa 27 = Timer 28 = TimeSl 29 = TV/AV GRRGRGRR Fine Up Fine Dn L Ctl R Ctl OBC Func Review BiLing 25 = Stereo 26 =TimeFa 27 = Timer 28 = TimeSl 29 = TV/AV GRRG RGGR Tint R Tint L Color RColor L Contr R Contr L Timer Stereo 24 = SAP 25 = Reset 26 = Q/V 27 =EXP 28= Disp 29 = Mono 30 = Lock 31 = TV 32 = Ext 1 33 = Ext 2 34 = AntGRRG GRRG TV/Video Time GRRG GRGR TV/Video Wide Lvl Up Lvl Dn MemoryFunc MTC Stereo 25 = Timer 26 = 100 27 = BiLing GRRG GRGG 10  11  12  13GRRG GGRR RF12 Ch Rtn Str SAP Mono Timer T Set TV/CATV TV/Vid 26 = 10027 = Audio 28 = CCC1 29 = CCC2 30 = CCC3 31 = 32 = 33 = 34 = Pict 35 =Reset CCC4 ContDn ContUp GRGG RRRR Sleep Review GRGG RRRG K  L GRGG RRGRSAP Sleep TV/Video GRGG RRGG Program Q Rev SAP Sleep TV/Video Add DeleteGRGG RGRG Sleep St/SAP TV/Video GRGG RGGR 11  12  13  14  15  16 GRGGRGGG K  L GRGG GRRR K  L VIDEO CASSETTE RECORDERS RRRR RRRR Nse CnclRRGR RRRG Ant RRGR RRGR Ant RRGR RRGG Frm Adv Slow Slow Up Slow Dn SrchFwd Srch Rev RRGR RGRR A  B  C  D  E  F  Slow RRGR GGGR Slow RRGR RGGRSlow + Slow − Eject CM Skip Program Input Mode AM/PM 28 = Shift 29 =Reset 30 = Mem/PS 31 = SR RRGR RGGG Forward FlshBack Ant Vol + Vol −Reverse Sp Phne PC RRGR GRRR Ant/Aux RRGR GRRG 11  12  13  14  15  16RRGR GRGR Frm Adv Memory Reset Chg Time RRGR GGRR Pwr On Pwr Off RRGRGGGG Slow Slow Up Slow Dn Set Up Set Dn Timer Clear Display 29 = Frame30 = Memory 31 = Prog 32 = Qtr 33 = QtrStr 34 = Quick 35 = 36 = Rst 37 =Clock 38 = APS 39 = 100 Remain GGRG RRRR K  L GGRG RRRG CFM Slow GGRGRRGR Slow OSP Shift L Shift R Slow Dn Slow Up St + St − 28 = Timer GGRGRRGG 11  12  13  14  15  16  Slow GGRG RGRR Slow Dn Slow Up Slow CABLECONVERTERS RRRR RRGR A/B Add Delete Set Lock Last Ch RRRR RRGGA  B  Event(*) #  Arrow Up Arrow Dn AP Delete 25 = F 26 = K 27 = Learn28 = PGM 29 = TCP 30 = Enter RRRR RGRR Skew L Skew R Audio SAT Ant EastAnt West RRRR RGRG Plus Minus Dot Box Str Clear Time Auth 22 = C/R 23 =# RRRR RGGR Prog Auth RRRR RGGG Auth RRRR GRRR Auth Prog RRRR GRRG PlusMinus Rcp * M1  M2  M3  M4 RRRR GRGR A-B  Dot 1  Dot 2 * Am Dm F RRRRGRGG Arrow Up Arrow Dn COMPACT DISK PLAYERS RRRR RRRR CD Fwd CD BckUpGRRG GRGG Fwd Indx Rev Indx Repeat Memory For numbered functions, press“DO” then the two digit number.

FIG. 18A is a flow chart of the steps for setting a “DO” command macro,for achieving a function that normally requires the actuation of severalbuttons, by programming one particular button to perform the functionsrequired of the several buttons to achieve a specific function.

FIG. 18B is a flowchart of the simple two pushbutton steps required forexecuting the “DO” macro command created in FIG. 18A.

FIG. 19A sets forth the steps initiated by a user to determine thevarious blink codes which identify what equipment or apparatus theremote control device 10 is set for.

FIG. 19B illustrates a sample blinking grid of eight red and greenblinks which will be presented o the user. Once a particular pattern ofeight red or green blinks has taken place, the user of the device 10will look up the blink pattern or code in TABLE I included in a userhandbook. This table shows the user which pushbuttons 25 labeled A-H areassociated with additional functions stored which may be stored in theRAM 54. Additional functions beyond the eight supported by pushbuttonsA-H are performed by pushing “DO”, and then the two-digit sequence shownin TABLE I.

The instructions for using the control device 10 which are supplied to apurchaser thereof in an instruction booklet are set forth below.

Matching the Device to Your Equipment

The device 10 can control most remote controlled TV's, VCR's, cableconverters, and CD players, but it needs the user's input to match it toyour particular equipment. The easiest way to do this is to STEP-and-SETyour device 10. You will only need to do this once for each differenttype of device you have.

-   -   1. To STEP-and-SET your device 10, first press DO, Enter.    -   2. Press one of the following equipment selection buttons to        tell the device 10 what kind of equipment to match.

VCR1 Cable TV VCR2 CD

-   -   3. Aim the device 10 at the equipment and try various function        buttons to see if the equipment responds correctly. Make sure        you are reasonably close to the equipment and that nothing is        blocking the path. The light (LED 4) at the top of the device 10        will shine green whenever it is sending an infrared code, or it        will not light at all if it does not send a code for a        particular button.    -   4. If your equipment did not respond correctly or did not        respond at all, press DO1 to change the device 10 so that it        will send the next set of infrared codes in its library, or        press DO2 to change it so it will send the previous set of        codes.    -   5. When your use DO1 or DO to step the device 10 setting forward        or back, its light will blink yellow each time you step it. The        settings step around in a circle. Whenever you get back to the        setting where you started the device 10 light will blink red to        notify you.    -   6. Use DO1 and DO to step through the sets of codes and keep        trying out functions until your equipment responds correctly.        The device 10 will when be set to send the proper infrared codes        for operating your particular equipment.    -   7. When you are satisfied that the device 10 is properly        matched, press DO, or any of the equipment selection buttons to        restore the DO1 and DO buttons to their normal functions.    -   8. If your equipment is responding to your device 10 but some        buttons are causing the wrong thing to happen, keep going. Some        equipment responds to the infrared codes of other brands of        equipment.    -   9. If your try out all of the codes in the device 10 library and        your equipment still does not respond, it is probably because        the code data for generating the infrared codes for operating        your equipment is not in the library of your control device 10.        The Keyboard 61        Take a look at the keyboard. There are four groups of buttons:    -   1. Equipment Selection Buttons tell the device 10 which        equipment is to be controlled:

VCR1 Cable TV VCR2 CD

-   -   2. Basic Function Buttons are used to control your TV, VCR,        CABLE and CD. They work in much the same way as in older remotes        which typically have the following buttons.

Power Rec. TV.VCR Stop Pause Rewind Reverse Play Fast Fwd Mute 1 2 3Vol.Up 4 5 6 Vol.Dn 7 8 9 0 Enter Chan.Up Recall Chan.Dn

-   -   3. Extended Function Buttons perform any special functions your        equipment may have, such as color control, picture control, tint        control, etc. These buttons are identified with the following        alphabet letters.

A C E G B D F H

-   -   4. DO Buttons are used to perform very powerful DO Commands        which are explained below.        Special Features

Besides the basic functions such as channel up/down and volume up/downthat most TV remote controls have, there could be special features aswell, for example:

-   Color up/down.-   Picture up/down.-   Tint up/down.-   Sleep.    Your VCR's remote control can also have special features such as:-   Frame advance-   Channel up/down    Your cable converter remote control can also have additional    features such as:-   Channel recall-   Delete    Your CD player remote control can have special features such as:-   Repeat-   Track programming

Once you have matched the device 10 to your TV, VCR, Cable Converter andCD player, all functions that were controlled by your old remote controldevices can now be controlled by the device 10. You may even notice someextra features that weren't controlled by your old remote.

Since the device 10 can control such a wide range of equipment, there isnot enough room on it for buttons for every possible feature of everyremote control. Instead, there are eight extended function buttons atthe bottom labelled A through H. To find out what these eight buttonscontrol for your particular TV, VCR, cable converter and CD player:

-   -   1. Get your pen and paper ready.    -   2. Press DO and then the button (TV VCR1 VCR2 Cable CD) of the        device you want to know the special features of.    -   3. The device 10 will blink “red” or “green” 8 times. Every time        it blinks “red” write down an “R”. Every time it blinks “green”        write down a “G”. When you're finished writing it should look        something like this:        -   RRRGRRRG            This is the “Blink Code” for your device. If your miss it            the first time around, just press DO and the device button a            second time.    -   4. Look at TABLE I and find the sequence of “R” and “G” that        matches the one you wrote down.    -   5. Read the special features chart next to your Blink Code        sequence which tells you what functions the A through H buttons        control for your particular device. For example, the feature        chart of your TV might read:

A: Color Up C: Picture Up B: Color Down D: Picture Down

-   -   6. To turn the color up in this example, you would press TV (of        course if the device 10 is already set to control your TV, your        do not have to press TV again but it doesn't hurt if you do so),        then A.    -   7. To turn the color back down, you would just press B.    -   8. Write down what special functions are controlled by the A        through H buttons on the handy stick-on labels enclosed with the        control device 10.    -   9. After writing down the special functions on the labels, stick        them on to the back of the control device 10 for quick and easy        reference.        If The Controlled Equipment Has More Than 8 Extended Functions

Usually, the eight A through H buttons are enough for most controlledequipment. If they're not, don't worry. If your controlled equipment hasmore than eight special features these too are controlled by the device10.

Beyond the A through H function buttons, any additional functions areperformed by pressing DO then two of the 0-9 number buttons. Forexample, your TV's feature chart may show additional functions likethese:

25: SAP 26: Reset 27: Q/V 28: Display 29: Mono 30: Stereo

If you did have these features and wanted to use them, you would pressDO and then the two-digit number for that feature. For example, youmight:

Press DO,3,0. This would turn your TV's stereo broadcast feature on.

If you use a feature like this frequently you may want to assign it to aDO command, our next topic of discussion.

Setting DO Commands

DO Commands give you the power to perform a multitude of differentfunctions with the push of just one or two buttons. DO Commands let youassign any of the following buttons to tell the device 10 toautomatically perform a series of keystrokes you use often:

DO1 D02 Rec TV.VCR Stop Pause Rewind Reverse Play Fast Fwd. Mute Vol.UpVol.Dn Enter Chan.Up Chan.Dn A C E G B D F H

To tell the device 10 to do what you want, your must teach it. As anexample, you can teach the device 10 to turn your whole system on andset the TV to channel 4 by doing the following:

-   -   1. Press DO, Recall. This tells the device 10 that you want to        teach it something to do.    -   2. Next, your must assign a button 25 you will use to DO        whatever you teach it. You can use any of the device 10's        buttons 25 set forth above. For example, let's use DO1 at the        top of the keyboard: Press DO1.    -   3. Now, you must tell the device 10 what button sequence you        would press to turn your whole system on and set the TV to        channel 4.    -   4. Press TV Power. This tells the device 10 to turn your TV on.    -   5. Press 4, Enter (pressing Enter may not be required for your        TV). This tells the device 10 to set your TV to channel 4.    -   6. Press VCR, Power. This tells the device 10 to turn your VCR        on.    -   7. Press Cable, Power. This tells the device 10 to turn your        cable converter on.

Now you have pressed all the buttons you want the device 10 to learn forthis example.

-   -   8. Press DO, Recall. This tells the device 10 that you are        finished teaching it and to remember what you have taught it.

Now the device 10 knows how to turn your TV, VCR, and cable converter onand set the TV to channel 4, just by pressing one button.

-   -   9. Aim the device 10 at your equipment and press DO1. Make sure        you keep the device 10 pointed at your equipment while the light        is flashing.

Now that you know how DO Commands work, you can teach the device 10 to“DO” practically any sequence of keystrokes. Just remember to keep thefollowing in mind:

To perform a DO Command, press DO then the button you assigned toremember the DO Command. However, if you assigned the DO1 or DO buttonsto remember a DO Command, you do not have to press DO first, just pressDO1 or DO.

If the device 10 light (LED4) starts blinking green, yellow, red whileyou are trying to teach it, it is telling you that RAM 54 is full. TheDO command you are teaching is automatically erased. You can teach thedevice 10 a shorter DO command, or erase some other DO command you havealready taught the device 10 to obtain more memory space.

After the DO Command is finished, the last apparatus 10 selected withinthe DO Command will be the apparatus the device 10 will work with next.

Erasing a DO command

If you just want to change a DO Command, you do not have to erase itfirst-just set up the new DO Command in its place. However, to get ridof a DO Command without replacing it with a new one:

-   -   1. Press DO Recall.    -   2. Press the button you have assigned to the DO command that you        want to erase. For example, to erase the DO command you taught        the device 10 in the above example:        -   Press DO1.    -   3. Press DO, Recall again. The old DO Command is now erased.        QUICK-MATCHING To Your Equipment

There is a quicker way to match your equipment to the device 10 byQuick-Matching. Quick-Matching is a way to set the device 10 directly tomatch any controlled equipment in its library. Follow the steps below todo a Quick-Match:

-   -   1. Match the device 10 to your equipment using STEP-and-SET.    -   2. Press DO, then the desired device button (TV, VCR1, VCR2,        Cable or CD). The device 10 light will blink red or green eight        times.    -   3. Write down the sequence of red and green blinks. This is the        “Blink Code” for the particular device.    -   4. Press DO Enter Recall. This tells the device 10 to do a        Quick-Match.    -   5. Enter the correct sequence by pressing Ch Dn for “R” and Ch        Up for “G”. The device 10 light (LED 4) will flash “red” or        “green” depending on what button you push. The Ch Dn and Ch Up        buttons 25 are labelled with the correct color for each.    -   6. When the device 10 has successfully Quick-Matched your        equipment it will automatically flash green twice. If it did not        match, it will flash yellow. If it fails to Quick-Match, it is        probably because the requisite code data is not stored in the        library in your device 10.        QUICK-MATCHING Between Controlled Equipment

One of the great benefits of Quick-Matching is that you can switch thedevice 10 functions between the remote controlled TVs, VCRs and cableconverters you may own. This is done by using “Quick-Match” within a “DOcommand”.

Let's suppose you have two TVs in your house and only one device 10.Here's how to switch between them:

-   -   1. Press DO Recall. the button you want to use to switch to your        other TV set.

For example, press DO. This tells the device 10 that you want to teachit a DO Command.

-   -   2. Press DO Enter Recall. This tells the device 10 that you want        to do a Quick-Match.    -   3. Enter the R and G blink sequence of the second TV you want to        control by pressing Ch Dn for “R” and Ch Up for “G”.    -   4. Press DO, Recall. This tells the device 10 that you are        finished teaching it a “DO command”.

Now, to set the device 10 to control your second TV, press DO. Thistells the device 10 that you will be controlling your second TV.

To go back to controlling your first TV, simply teach device 10 another“DO command”. Just repeat the steps above, except use a different buttonand the correct R and G sequence for your first TV.

The device 10 can easily be taught to control a whole houseful ofinfrared remote controlled equipment—just teach the device 10 a DOCommand to QUICK-MATCH each additional piece of equipment.

In FIG. 20 is shown a unique signal coupling and converting assembly 206which includes a connector assembly 207, a cable 208 and a special coverplate 210 for the battery compartment 45. The cover plate 210 has on theunderside thereof three pins 212, 214 and 216 which are positioned toconnect with the three serial ports 1, 2 and 3. The pins 212, 214 and216 mounted to the cover plate 210 are connected by three wireconductors 224, 226 and 228 in cable 208 to connector assembly 207 whichhas conversion circuitry 230 therein. The connector assembly 207 has anine pin array 250 of sockets 251-259 for receiving nine pins and theconversion circuitry 230 which enables one to use some of the ninesockets 250 of the connector assembly 207 for communication with thethree pins 212, 214, 216 that are connected to the serial ports 1, 2 and3 as shown in FIGS. 21 and 22.

FIGS. 21 and 22 are a schematic diagram of the conversion circuitry 230.

In FIG. 21 is shown circuit portion 230A. In this circuit portion, plusnine volts goes into pin 4 of connector DB-9 or pin 20 of connectorDB-25 and minus 9 volts goes into pin 7 of DB-9 or pin 4 of connectorDB-25, which are connected to the circuit portion 230A of the conversioncircuitry 230. This provides a constant source of positive and negativevoltage and is used as the power supply for the circuit. Note that twodifferent types of personal computer host female connectors can be used,namely, female connector DB-9 or female connector DB-25 in the connectorassembly 207.

Serial information is transmitted by the hand held control device 10 vialine HTXD at serial port 1 and is level translated by the operatingcircuitry 42 from a range of from plus 5 volts to zero volts to a rangeof from minus 9 volts to plus 9 volts.

In this respect, when 0 volts is present at serial port 1, transistorsQ1 and Q2 are turned on such that +9 volts is supplied from pin 4 ofconnector DB-9 or pin 20 of connector DB25 through transistor Q1 to pin2 of connector DB-9 or pin 3 of connector DB-25.

Then, when +5 volts is present at serial port 1, the emitter-base oftransistor Q2 is reverse biased, turning off transistor Q2 which turnsoff transistor Q1. As a result, the 9 volts at pin 7 of connector DB-9or pin 4 of connector DB-25 is supplied through resistor 270 to pin 2 ofconnector DB-9 or pin 3 of connector DB-25.

The circuit portion 230B is shown in FIG. 22 and performs a receivingfunction for the control device 10. When pin 3 of connector DB-9 or pin2 of connector DB-25 is at −9 volts, its normal resting state, then HTXDat serial port 3 is at 0 volts. When pin 3 of connector DB-9 or pin 2 ofconnector DB-25 goes to +9 volts, HTXD at serial port 3 goes to plus 5volts. Pin 5 of connector DB-9 or pin 7 of connector DB-25 is directlyconnected to serial port 2 and always stays at ground.

In transmitting data to the control device 10, the programming computersupplies +9 v or −9 v to pin 3 of connector DB-9 or pin 2 of connectorDB-25. When +9 v is present on IBMTXD, 4.3 volts established by Zenerdiode 272 is passed through diode 274 to serial port 3.

When −9 v is present on IBMTXD, the Zener diode 272 clamps to −0.6 voltsresulting in conduction through transistor Q3 pulling serial port 3 to 0volts.

The diode 274, the transistor Q3 and a resistor 276 connected as shownare provided to allow pressing a key 25 on keyboard 26 to “wake up” CPU56 (actuate the wake up circuit 70) even though circuit portion 230B isconnected to the control device 10.

From the foregoing description, it will be apparent that the universalremote control device 10, the signal coupling and converting assembly206, the disclosed methods of learning and storing infrared codes, andthe methods for operating the control device 10 of the present inventionhave a number of advantages, some of which have been described above andothers of which are inherent in the device 10, assembly 206 and themethods of the invention disclosed herein. For example:

-   -   (1) With no ROM in the circuitry 42, the instruction codes and        code data in the RAM 54 can be upgraded at any time via the        serial ports 1, 2 and 3.    -   (2) By loading the instruction codes and initial code directly        into the RAM 54 by tri-stating the CPU 56, the circuitry 42 is        enabled to function without a ROM.    -   (3) The serial ports 1, 2 and 3 together with the signal        coupling and converting assembly 206 enable new data to be input        into the circuitry 42 from an RS-232 interface device to the        serial ports 1, 2 and 3.    -   (4) The visible LED 4 providing red/green/yellow/off blink code        provides a means for communicating to the user where the device        10 has “landed” after searching for codes to control a specific        apparatus. The user can then look up in the instruction booklet        what extended functions are available via the letter keys A-H or        number keys, plus the DO key for that particular apparatus or        equipment.    -   (5) The write-protect circuit 78 prevents corruption of the        operating program or data in the RAM 54 during transient states        when the microprocessor is being turned on or turned off.    -   (6) The multiplexing of the address and data lines between the        RAM 54 and the CPU 56 enables scrambling of the instruction        codes and the code data so that the memory image in the RAM 54        is encrypted.    -   (7) The construction of the keyboard 61 enables one to have 56        keys which can be decoded using only 8 bidirectional input (and        output) ports 63.    -   (8) The keyboard 61 including the keyboard circuitry 62 plus the        wakeup circuit 70 provides a system whereby pressing any key        turns on power to the CPU 56.    -   (9) The provision of three infrared LEDs 1, 2 and 3 with no        current-limiting resistors enables the device 10 to use maximum        energy to create the infrared control pulses with a minimum        amount of energy wasted.    -   (10) The DO keys together with the numeral and letter keys allow        a number of DO functions to be performed with the device 10 by a        user.    -   (11) Any combination of products can be controlled with the        universal remote control device 10.    -   (12) The step-and-set method for locating the code data for        generating the infrared code necessary to operate the user's        equipment or for the user to learn that such code data is not        present in the library in the RAM 54.

Also modifications can be made to the device 10, the assembly 206 andthe described methods of the present invention without departing fromthe teachings of the present invention. Accordingly, the scope of theinvention is only to be limited as necessitated by the accompanyingclaims.

1. A method of communicating information to a user of a remote controldevice, comprising: testing a condition of the remote control inresponse to a request to write data into a memory of the remote controlto determine if the memory of the remote control is able to accept thedata, the data being used by the remote control to transmit one or moresignals to command operations of one or more appliances; and providing avisual indication to the user that the testing has determined that thecondition is such that the memory of the remote control is unable toaccept the data.
 2. The method as recited in claim 1, wherein testingthe condition comprises testing to determine if a level of battery poweris sufficient to enable writing the data into the memory of the remotecontrol.
 3. The method as recited in claim 1, wherein the visualindication comprises illuminating an LED.
 4. The method as recited inclaim 3, wherein illuminating the LED comprises flashing the LED.
 5. Foruse in a remote control, a readable medium having programming forcommunicating information to a user of the remote control device, theprograming performing steps comprising: testing a condition of theremote control in response to a request to write data into a memory ofthe remote control to determine if the memory of the remote control isable to accept the data, the data being used by the remote control totransmit one or more signals to command operations of one or moreappliances; and providing a visual indication to the user that thetesting has determined that the condition is such that the memory of theremote control is unable to accept the data.
 6. The readable medium asrecited in claim 5, wherein testing the condition comprises testing todetermine if a level of battery power is sufficient to enable writingthe data into the memory of the remote control.
 7. The readable mediumas recited in claim 5, wherein the visual indication comprisesilluminating an LED.
 8. The readable medium as recited in claim 7,wherein illuminating the LED comprises flashing the LED.